package com.yq.cp.controller.yw;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yq.cp.config.UserThreadLocal;
import com.yq.cp.entity.common.ApiResult;
import com.yq.cp.entity.permission.User;
import com.yq.cp.entity.yw.YwGdxx;
import com.yq.cp.entity.yw.YwGdxxClNzjl;
import com.yq.cp.entity.yw.YwGdxxCljl;
import com.yq.cp.mapper.yw.YwGdxxClNzjlMapper;
import com.yq.cp.mapper.yw.YwGdxxMapper;
import com.yq.cp.mapper.yw.YwZbglGlryMapper;
import com.yq.cp.service.yw.YwGdxxCljlService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 运维-工单-处理记录 前端控制器
 * </p>
 *
 * @author zh
 * @since 2024-09-07
 */
@RestController
@RequestMapping("/yw-gdxx-cljl")
public class YwGdxxCljlController {

    @Resource
    YwGdxxCljlService ywGdxxCljlService;
    @Resource
    YwGdxxMapper ywGdxxMapper;
    @Resource
    YwZbglGlryMapper ywZbglGlryMapper;
    @Resource
    YwGdxxClNzjlMapper ywGdxxClNzjlMapper;

    @ResponseBody
    @PostMapping("clgd")
    public ApiResult clgd(@RequestBody YwGdxxCljl ywGdxxCljl) {
        ywGdxxCljlService.clgd(ywGdxxCljl);
        return ApiResult.ok();
    }

    @ResponseBody
    @PostMapping("all")
    public ApiResult all(@RequestBody YwGdxxCljl ywGdxxCljl) {
        List<YwGdxxCljl> all = ywGdxxCljlService.all(ywGdxxCljl);
        return ApiResult.ok().data(all);
    }
    @ResponseBody
    @PostMapping("zxjl")
    public ApiResult zxjl(@RequestBody YwGdxxCljl ywGdxxCljl) {
        YwGdxxCljl zxjl = ywGdxxCljlService.zxjl(ywGdxxCljl);

        YwGdxx ywGdxx = ywGdxxMapper.selectById(ywGdxxCljl.getId());

        Long clrId = ywGdxx.getClrId();
        Long clslrId = ywGdxx.getClslrId();
        Integer sfngclgd=null;

        if (clrId==null && clslrId==null){
            List<User> cxdqzbry = ywZbglGlryMapper.cxzbry(ywGdxx.getId());
            sfngclgd=0;
            for (int j = 0; j < cxdqzbry.size(); j++) {
                User user = cxdqzbry.get(j);
                if (user.getJjbType()!=null && (user.getJjbType()==1 || user.getJjbType()==3)){
                    if (user.getId().compareTo(UserThreadLocal.get().getId())==0){
                        if (ywGdxx.getHxzt()!=null && (ywGdxx.getHxzt()==3 || ywGdxx.getHxzt()==99)){
                            sfngclgd=0;
                        }else {
                            if (ywGdxx.getSlcs()==null){
                                sfngclgd=1;
                            }else {
                                if (user.getJjbType()==1){
                                    sfngclgd=1;
                                }else{
                                    sfngclgd=0;
                                }
                            }
                        }


                        break;
                    }
                }
            }
        }else {
            sfngclgd=0;
            QueryWrapper<YwGdxxClNzjl> queryWrapper1=new QueryWrapper<>();
            queryWrapper1.eq("gdxx_id",ywGdxx.getId());
            queryWrapper1.orderByDesc("id");
            List<YwGdxxClNzjl> ywGdxxClNzjls = ywGdxxClNzjlMapper.selectList(queryWrapper1);
            if (ywGdxxClNzjls==null || ywGdxxClNzjls.size()==0){
                if (clrId.compareTo(UserThreadLocal.get().getId())==0){
                    sfngclgd=1;
                }
            }else {
                for (int j = 0; j < ywGdxxClNzjls.size(); j++) {
                    YwGdxxClNzjl ywGdxxClNzjl = ywGdxxClNzjls.get(j);
                    if (ywGdxxClNzjl.getAuditState()==1 && (ywGdxx.getHxzt()==2 ||  ywGdxx.getHxzt()==4)){
                        if (ywGdxxClNzjl.getNzrId().compareTo(UserThreadLocal.get().getId())==0){
                            sfngclgd=1;
                            break;
                        }else {
                            break;
                        }

                    }else {
                        break;
                    }
                }
            }

        }
        if (sfngclgd==0){

        }else {
            if (zxjl!=null){
                zxjl.setClxxwz("");
                zxjl.setClxxtp("");
            }else {
                zxjl=new YwGdxxCljl();
            }

        }

        return ApiResult.ok().data(zxjl);
    }

    @ResponseBody
    @PostMapping("audit")
    public ApiResult audit(@RequestBody YwGdxxCljl ywGdxxCljl) {
        ywGdxxCljlService.audit(ywGdxxCljl);
        return ApiResult.ok();
    }
}

